
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[EBAS_SP_HENT_STUDERENDE]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[EBAS_SP_HENT_STUDERENDE]
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS OFF 
GO

CREATE PROCEDURE [DBO].[EBAS_SP_HENT_STUDERENDE] 
	@session varchar(255),
	@gruppeNavn varchar(255) = '%'
WITH ENCRYPTION	
AS
	DECLARE 
		@rettighed int,
		@studguid uniqueidentifier,
		@brugerguid uniqueidentifier,
		@antal int,
		@gruppeGuid uniqueidentifier

	SET NOCOUNT ON
	SET @antal = 0
				
	CREATE TABLE #temp ( rett int )
	INSERT INTO #temp (rett)
	EXEC EBAS.DBO.EBAS_SP_SIKKERHED_VERIFICER_SESSION @session	

	SET @rettighed = (SELECT IsNull(max(rett),0) FROM #temp)

	IF 8 <= @rettighed
	BEGIN
		IF @gruppeNavn <> '%'
		BEGIN
			SET @gruppeGuid = (SELECT GUID FROM EBAS_GRUPPE WHERE NAVN = @gruppeNavn)
	

			SELECT 	S.GUID, S.CPR_NR, S.FORNAVN, S.EFTERNAVN, S.TITEL, S.SKOLE_ID,
				S.SKOLE_DATO, S.OK_DATO, S.BEMAERKNING, S.UDDANNELSE, 
				ST.STATUS, IDEN.IDENTIFIKATION, ISNULL(br.BRUGERNAVN, ' ') AS BRUGERNAVN, @antal AS ANTAL
			FROM 	EBAS_STUDERENDE S, EBAS_STATUS ST, EBAS_IDENTIFIKATION IDEN,
				EBAS_SIKKERHED_BRUGER br
			WHERE	S.IDENTIFIKATION_GUID = IDEN.GUID
			AND	S.STATUS_GUID = ST.GUID
			AND	S.IDENTIFIKATION_GUID = IDEN.GUID
			AND	S.SIKKERHED_BRUGER_GUID = br.GUID 
			AND	S.GUID IN (
				SELECT STUDERENDE_GUID
				FROM EBAS_GRUPPE_STUDERENDE
				WHERE GRUPPE_GUID = @gruppeGuid
			)
			UNION
			SELECT 	S.GUID, S.CPR_NR, S.FORNAVN, S.EFTERNAVN, S.TITEL, S.SKOLE_ID,
				S.SKOLE_DATO, S.OK_DATO, S.BEMAERKNING, S.UDDANNELSE, 
				ST.STATUS, IDEN.IDENTIFIKATION, ' ' AS BRUGERNAVN, @antal AS ANTAL
			FROM 	EBAS_STUDERENDE S, EBAS_STATUS ST, EBAS_IDENTIFIKATION IDEN
			WHERE	S.IDENTIFIKATION_GUID = IDEN.GUID
			AND	S.STATUS_GUID = ST.GUID
			AND	S.IDENTIFIKATION_GUID = IDEN.GUID
			AND	S.GUID IN (
				SELECT STUDERENDE_GUID
				FROM EBAS_GRUPPE_STUDERENDE
				WHERE GRUPPE_GUID = @gruppeGuid			
			)			
		END	
		ELSE
		BEGIN
			SET @antal = (SELECT COUNT(*) FROM EBAS_STUDERENDE)
	
			SELECT 	S.GUID, S.CPR_NR, S.FORNAVN, S.EFTERNAVN, S.TITEL, S.SKOLE_ID,
				S.SKOLE_DATO, S.OK_DATO, S.BEMAERKNING, S.UDDANNELSE, 
				ST.STATUS, IDEN.IDENTIFIKATION, ISNULL(br.BRUGERNAVN, ' ') AS BRUGERNAVN, @antal AS ANTAL
			FROM 	EBAS_STUDERENDE S, EBAS_STATUS ST, EBAS_IDENTIFIKATION IDEN,
				EBAS_SIKKERHED_BRUGER br
			WHERE	S.IDENTIFIKATION_GUID = IDEN.GUID
			AND	S.STATUS_GUID = ST.GUID
			AND	S.IDENTIFIKATION_GUID = IDEN.GUID
			AND	S.SIKKERHED_BRUGER_GUID = br.GUID 
			UNION
			SELECT 	S.GUID, S.CPR_NR, S.FORNAVN, S.EFTERNAVN, S.TITEL, S.SKOLE_ID,
				S.SKOLE_DATO, S.OK_DATO, S.BEMAERKNING, S.UDDANNELSE, 
				ST.STATUS, IDEN.IDENTIFIKATION, ' ' AS BRUGERNAVN, @antal AS ANTAL
			FROM 	EBAS_STUDERENDE S, EBAS_STATUS ST, EBAS_IDENTIFIKATION IDEN
			WHERE	S.IDENTIFIKATION_GUID = IDEN.GUID
			AND	S.STATUS_GUID = ST.GUID
			AND	S.IDENTIFIKATION_GUID = IDEN.GUID		
		END
	END
	ELSE
			SELECT 	S.GUID, S.CPR_NR, S.FORNAVN, S.EFTERNAVN, S.TITEL, S.SKOLE_ID,
				S.SKOLE_DATO, S.OK_DATO, S.BEMAERKNING, S.UDDANNELSE, 
				ST.STATUS, IDEN.IDENTIFIKATION, ' ' AS BRUGERNAVN, @antal AS ANTAL
			FROM 	EBAS_STUDERENDE S, EBAS_STATUS ST, EBAS_IDENTIFIKATION IDEN
			WHERE	S.IDENTIFIKATION_GUID = IDEN.GUID
			AND	S.STATUS_GUID = ST.GUID
			AND	S.GUID IS NULL
GO

SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO
